#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author  : lei.wang
import random


class RedPackageHelper:
    """
    该函数用于随机分配红包金额，给定总金额和红包数目，会确保每个红包至少有 1 分钱并返回包含每个子红包金额的列表。具体步骤如下：
        1. 首先，使用断言语句确保总金额大于等于红包数目，以保证每个红包至少有 1 分钱。
        2. 接下来，初始化一个长度为红包数目的列表，将每个元素设为 1，表示每个红包至少有 1 分钱。
        3. 然后，计算剩余金额，即总金额减去红包数目的值。
        4. 使用随机数函数，在每次循环中随机选择一个红包索引，并将该红包的金额加 1，直到将剩余金额分配完毕。
        5. 最后，函数返回分配后的每个红包金额列表。
    """

    @staticmethod
    def allocate_red_package_money(total_amount, total_count):

        assert total_amount >= total_count, '总金额要大于红包数量'

        allocated_amount_list = [1] * total_count
        left_amount = total_amount - total_count
        for _ in range(left_amount):
            allocated_amount_list[random.randint(0, total_count - 1)] += 1
        return allocated_amount_list
